1. Field of the Invention
The invention relates generally to a data driven type information processing apparatus, and more particularly to a data driven type information processing apparatus, which resolves externally applied data without a tag and is capable of data driven type information processing of the input data.
2. Description of the Related Art
In a conventional von Neumann information processing apparatus, various instructions are prestored in a program memory as a program. The instructions are sequentially read out from an address specified by a program counter in the program memory and executed.
In contrast, a data driven type information processing apparatus is one of non Neumann information proccessing apparatuses which does not involve a concept of sequential execution of instructions by a program counter. Such a data driven type information processing apparatus employs architecture based on parallel processing of instructions. In this data driven type information processing apparatus, instructions can be executed as soon as the data to be operated on are collected, and a plurality of instructions are driven by the data simultaneously, so that the program is executed in parallel according to the natural data flow. As a result, the time required for operation can be reduced significantly.
Referring to FIG. 1, a data packet circulating around each unit of the conventional data driven type information processing apparatus includes a tag TB and data DB. Note that the same type of data packet shown in FIG. 1 is used in the data driven type information processing apparatus of the present invention which will be described later.
The tag TB includes a generation field F1 and a destination field F2, and stores information for uniquely specifying the data packet. The generation field F1 stores a generation number GN including an address number .alpha. and a non-address number .beta.. The generation number GN uniquely specifics each group of data packets when plural groups of data packets are processed in parallel using one data flow program in the data driven type information processing apparatus. The generation number GN will not be updated while information processing is carried out in the data driven type information processing apparatus.
The data DB includes an instruction field F3, a first data field F4 and a second data field F5, and stores a processing instruction and data to be processed based on the processing instruction. Destination field F2 stores destination information ND. Instruction field F3 stores instruction information OPC, first data field F4 stores operand data OPD1, and second data field F5 stores operand data OPD2.
Referring to FIG. 2, the conventional data driven type information processing apparatus 50 receives a data packet externally in the form of an input signal IN3, processes the data according to a prescribed data flow program, and then sends out the data packet storing the result of processing in the form of an output signal OUT4. The data driven type information processing apparatus 50 includes input/output control units 4 and 8, a program storage unit 5, a firing control unit 6, and an operation unit 7.
The input/output control unit 4 receives externally a data packet through the input signal; In3 and a data packet applied from input/output control unit 8, and applies them sequentially to the program storage unit 5.
The program storage unit 5 includes a program memory (not shown). The program memory prestores a data flow program including a plurality of subsequent destination information and subsequent instruction information shown in FIG. 3. The program storage unit 5 receives the data packet applied from the input/output control unit 4, accesses an address of the program memory specified based on destination information ND of the input data packet, reads out the subsequent destination information and subsequent instruction information, stores the read out information in destination field F2 and instruction field F3 of the input data packet respectively, and outputs the data packet to the firing control unit 6.
The firing control unit 6 includes a matching memory (not shown). The firing control unit 6 receives a data packet applied from the program storage unit 5, and carries out matching of packets using the matching memory. More specifically, the firing control unit 6 detects two data packets which include the same destination information ND and the same non-address number .beta. of the generation number GN among the applied data packets, stores the content of field F5 (operand data OPD2) of one data packet in a predetermined data field of the other data packet, and outputs the other data packet to the operation unit 7 (hereinafter referred to as "firing"). Note that the aforementioned one data packet is discarded at this time.
The firing control unit 6 carries out matching of data packets using the matching memory in the following manners. Referring to FIG. 4, the matching memory has a plurality of addressable regions, and each region stores matching operand data, a matching generation number and a firing control flag VLD. The firing control unit 6 accesses an address specified based on the destination information ND of the input data packet and the address number .alpha. of the generation number GN. If the firing control flag VLD stored in the accessed region is "0", the firing control unit 6 writes either of operand data OPD1 and OPD2 of the input packet as matching operand data in the accessed region and writes the non-address number .beta. of the generation number GN of the input packet into the region of the matching generation number of the accessed region. Then, the firing control unit 6 sets the flag VLD in the appropriate region to "1" and discards the data packet.
In contrast, if the firing control flag VLD stored in the accessed region is "1" and the matching generation number stored in the region and the non-address number .beta. of the generation number GN of the input data packet do match, "firing" is detected. The firing control unit 6 applies the data packet to the operation unit 7 in the manner as described above. At this time, the flag VLD in the region is reset to "0".
Even though the firing control flag VLD stored in the accessed region is "1", the firing control unit 6 will not detect firing unless the matching generation number stored in the region and the non-address number .beta. of the generation number GN in the input data packet match. In this case, The firing control unit 6 applies the input data packet to the operation unit 7 as a not-yet-firing packet. Thereafter, the not-yet-firing packet is not processed in each unit is circulated in the information processing apparatus 50 until the firing is detected in firing control unit 6.
The operation unit 7 receives the data packet applied from the firing control unit 6 and decodes the instruction information OPC stored in the instruction field F3 of the input data packet. The operation unit 7 carries out a prescribed operation process on operand data OPD1 and OPD2 stored in fields F4 and F5 of the input data packet according to the decoded result and outputs the input data packet to the input/output control unit 8 with the decoded result stored in data field F4.
The input/output control unit 8 selectively outputs the data packet to the input/output control unit 4 or external to the information processing apparatus 50 based on the destination information ND stored in the applied data packet. At this time, the data packet which is output from the information processing apparatus 50 is sent out in the form of an output signal OUT4.
As described above, in the conventional data driven type information processing apparatus 50, while data packet applied in the form of input signal IN 3 circulates around the input/output control unit 4, program storage unit 5, firing control unit 6, operation unit 7, input/output control unit 8, input/output control unit 4, program storage unit 5, and so on, operation process according to the data flow program prestored in the program memory of the program storage unit 5 proceeds and the operation result is output from the information processing apparatus in the form of output signal OUT4.
FIG. 5 shows an example of the information processing system including the conventional data driven type information processing apparatus shown in FIG. 2 and a von Neumann type information processing apparatus. The information processing system shown in FIG. 5 includes a data driven type information processing apparatus 50 which receives an input signal IN3 from outside the system and outputs an output signal OUT4 after carrying out the data driven type data processing, and a von Neumann type information processing apparatus 51 which sequentially receives the signal OUT4 output from the information processing apparatus 50 and outputs the resulting output signal OUT5 after von Neumann type data processing.
In this system, input signal IN2 and output signal OUT4 include the data packet with the tag TB shown in FIG. 1. The signal OUT5 output from the von Neumann type information processing apparatus 51 does not have a tag TB.
As described above, since the architecture which processes a plurality of data in parallel based on a tag of an input data packet is employed in a conventional data driven type information processing apparatus, data without a tag cannot be processed. Therefore, even though the information processing system shown in FIG. 5 which combines the conventional data driven type information processing apparatus and the von Neumann type information processing apparatus is constructed, the direction in which the data flows must be unidirectional, i.e. from the data driven type information processing unit 50 to the von Neumann type information processing apparatus 51. The reason is that the data driven type information processing apparatus 50 cannot process data without a tag output from the von Neumann type information processing apparatus 51 if the data is input directly. In other words, information processing by way of applying signal OUT5 output from the von Neumann type information processing apparatus 51 again to the data driven type information processing apparatus 50 cannot be carried out conventionally. This is a problem because processing flexibility of the information processing system including the data driven type information processing apparatus cannot be improved.